package com.hangim.pce.common.service;

import org.joda.time.DateTime;

import java.sql.Timestamp;
import java.util.Date;

/**
 * 公用的顶层服务类（用于封装一些基本的操作）
 */
public interface BaseService {
    // ================================================================================================
    // 其他通用的方法
    // ================================================================================================

    /**
     * 通过IdWorker生成唯一ID
     *
     * @return Long
     */
    Long generateNextId();

    // ================================================================================================
    // 日期相关基础方法
    // ================================================================================================

    /**
     * 获取当前时间
     *
     * @return Timestamp
     */
    Timestamp getTimestamp();

    /**
     * 获取当前时间
     *
     * @return DateTime
     */
    DateTime getDatetime();

    /**
     * 获取当前时间
     *
     * @return Date
     */
    Date getDate();

    /**
     * 获取系统支持最大时间
     *
     * @return Date
     */
    Date getMaxDate();

    /**
     * 获取系统支持最小时间
     *
     * @return Date
     */
    Date getMinDate();

    /**
     * 获取系统支持最大时间
     *
     * @return Timestamp
     */
    Timestamp getMaxTimestamp();

    /**
     * 获取系统支持最小时间
     *
     * @return Timestamp
     */
    Timestamp getMinTimestamp();
}
